package cn.zhentao.service;

import cn.zhentao.pojo.*;
import cn.zhentao.vo.CartVo;
import cn.zhentao.vo.OrderVo;
import cn.zhentao.vo.PageInfoA;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface PhonAService {
    //模糊查询根据类型  Pura
    List<Phone> findByPhoneTypeLikePura();
    //模糊查询根据类型  Pocket
    List<Phone> findByPhoneTypeLikePocket();
    //模糊查询根据类型  Mate
    List<Phone> findByPhoneTypeLikeMate();
    //模糊查询根据类型  nova
    List<Phone> findByPhoneTypeLikeNova();
    //模糊查询图片路径 根据Pura
    Img findBySrcLikePura(int id);
    //模糊查询图片路径 根据Pocket
    Img findBySrcLikePocket(int id);
    //模糊查询图片路径 根据Mate
    Img findBySrcLikeMate(int id);
    //模糊查询图片路径 根据nova
    Img findBySrcLikenova(int id);
    //查询所有菜单表
    List<Menu> findAllMenu();
    //查询颜色根据手机表的id
    List<Color> findAllColorByPhoneId(int id);
    //查询版本根据手机表的id
    List<Version> findAllVersionByPhoneId(int id);
    //查询价格 根据手机表id 以及版本表id
    Price findAllPriceByPhoneIdAndVersionId(Integer phonef_id,  Integer version_id);
    //添加购物车
    int insertCart(Cart cart);
    //查询购物车的所有
    List<CartVo> findAllCart(int userId);
    //修改库存数量
    int updateInven(int num,int id);
    //查询所有手机    管理端
    List<Phone> findByPhoneAll(PageInfoA pageInfoA);
        //查询所有图片路径 管理端
    Img findByImgAllByPhoneId(int id);

    //查询价格 根据手机Id
    List<Price> findPriceAllByPhoneId(int id,PageInfoA pageInfoA);
    //删除手机的方法根据id 软删除
    int deletePhone(int id);
    //查询所有版本
    List<Version> findAllVerison();
    //查询所有颜色
    List<Color> findAllColor();
    int insertPhone(Phone phone);
    //添加手机与颜色中间表的方法
    int insertPhoneColor(int phoneId,int colorId);
    //添加价格表的方法
    int insertPrice(Price price);
    //添加手机 版本 价格 中间表的方法
    int insertPhonePriceVersion(int phonefId,int versionId,int priceId);
    //添加图片表的方法
    int insertImg(Img img);

    Phone findByphoneTypePhone(String phoneType);
    //修改库存 管理端
    int updatephoneInven(Integer phoneInven,Integer id);

    int deletePhoneColor(Integer id);

    int updatePrice(Double prices, Integer id1);
    //查询所有管理员菜单表
    List<MenuAdmin> findAllMenuAdmin();
    //修改管理员信息
    int updateAdmin(Address address);
    //删除购物车信息的方法
    int deleteCart(int id);
    //添加订单表的方法
    int insertOrder(Order order);
    //查询订单的方法 根据用户的id
    List<OrderVo> findAllOrder(int userId);
    //修改订单状态
    int updateState(int id);
    //修改订单状态 发货状态
    int fahuoUpdate(int id);
    //修改订单状态 修改为退货待处理状态
    int updatetuihuo(int id);
    //修改订单状态 修改为已退货状态
    int UpdateTuiHuoAdmin(int id);
    //修改订单状态 修改为已收货状态,商家拒绝退货
    int UpdateRefuseReturn(int id);
    //修改订单状态 点击拒收改为已退货
    int updateJuShou(int id);
    //查询所有订单表
    List<OrderVo> findAllOrderAdmin();

}
